package aplicProductos.modelos;

import framework.modeloCliente.*;
import ia.ejemplos.sessions.AdministradorProductos;
import ia.ejemplos.utils.ProductoVO;

import java.util.*;

import javax.naming.Context;
import javax.naming.InitialContext;


 
public class ProxyModeloAdmProductos extends ProxyModelo {
	private AdministradorProductos modServidor;
	private Vector listaProductos;
	private ProductoVO productoVisible;
	
	public ProxyModeloAdmProductos(){
		super(); 
		getConnection();
	}
	
	public void setStock(String prod, int st){
		productoVisible.setStock(st);
		modServidor.setStock(productoVisible);
    } 

	public int getStock(String prod){
		return productoVisible.getStock();
	}
 
	public Vector getListaNombresProductos() {
		listaProductos = modServidor.getListaProductos();
		Vector listaNombres = new Vector();
		for (int i=0; i<listaProductos.size(); i++) {
			listaNombres.add(((ProductoVO)(listaProductos.elementAt(i))).getNombre());
		};
		productoVisible = (ProductoVO) listaProductos.elementAt(0);
		return listaNombres;
	}
	
	public String getDetallesProducto(String prod) {
		return productoVisible.getDetalles();
	}

	public void setProductoVisible(String prod) {
		ProductoVO aux;
		for (int i=0; i<listaProductos.size(); i++) {
			aux = (ProductoVO)listaProductos.elementAt(i);
			if (aux.getNombre().equals(prod)){
				productoVisible = aux;
				return; 
			}
		}
	}
	
    protected void getConnection() {
        try {
        	InitialContext initContext;

        	Properties jndiProps = new Properties();
   		 	jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
   		 	jndiProps.put(Context.PROVIDER_URL,"remote://127.0.0.1:4447");
        	
   		 	//AdminUser: test
   		 	//AdminPass: test1234.
   		 	// username
   		 	jndiProps.put(Context.SECURITY_PRINCIPAL, "test");
   		 	// password
   		 	jndiProps.put(Context.SECURITY_CREDENTIALS, "test1234.");
   		 	// This is an important property to set if you want to do EJB invocations via the remote-naming project
   		 	jndiProps.put("jboss.naming.client.ejb.context", true);
   		 	// create a context passing these properties
   		 	Context context = new InitialContext(jndiProps);
   		 	// lookup the bean     Foo
   		 	//AdministradorProductosRemote administradorProductos =(AdministradorProductosRemote)context.lookup(appName+"/"+moduleName+"/"+sessionBeanName+"!"+viewClassName);
   		 	modServidor =(AdministradorProductos)context.lookup("Clase4EAR/Clase4/AdministradorProductosBean!ia.ejemplos.sessions.AdministradorProductos");

        } catch (Exception e) {
        	e.printStackTrace(); 
        }
    }    
	 
    private static Context getInitialContext() throws javax.naming.NamingException {
        return new javax.naming.InitialContext();
    }

}